Java API使用避坑合集

# Java API使用避坑合集

# 总结常见的容易踩坑点记录下来以供参考

相当于避坑大杂烩、会涉及各种坑,持续更新...

# 1、数组转集合 Arrays.asList() 方法

Arrays.asList() 方法 返回的集合不支持修改操作,否则会抛异常
java.lang.UnsupportedOperationException

# 2、BigDecimal 数据的比较 请使用compareTo方法

  • A.compareTo(B) 结果等于0 表示 A=B ,结果>0 表示 A>B, 结果小于0 表示A<B;
  • 如果使用equals 那么会连同小数位数一块比较 0.0和0 使用equals比较 返回false ,因为0.0有一位小数 而0没有。
 public static void main(String[] args) {
        BigDecimal bigDecimal = new BigDecimal("0");
        BigDecimal bigDecimal1 = new BigDecimal("0.0");

        System.out.println(bigDecimal.equals(bigDecimal1)); // false

        System.out.println(bigDecimal.compareTo(bigDecimal1)==0); // true
    }

# 3、spring clould 注册指定网段的IP地址 到服务中心

添加以下配置 10.211.为需要指定的网段

spring.cloud.inetutils.preferred-networks=10.211.

# 4、在Mybatis的 <if> 标签中 判断 BigDecimal 类型或者 Date类型 字段

  • 如果用了 !='' 不等于空串 判断 BigDecimal类型字段 , mybatis会自动把BigDecimal类型转为String,并且如果你的BigDecimal 字段值是0 就会被mybatis转为 null,巨坑无比;

  • 如果用了 !='' 不等于空串 判断 Date会直接报错 。

<-- 错误示例  !-->
 <if test="bigDecimalNum !=null and bigDecimalNum !=''"> 
 
 </if> 

 <if test="startDate !=null and startDate !=''"> 
 
 </if> 
<-- 正确示例  !-->
 <if test="bigDecimalNum !=null"> 
 
 </if> 

 <if test="startDate !=null"> 
 
 </if>